package cn.kgm.user.server.struct;

import cn.kgm.user.dto.dto.UserContactSaveDTO;
import cn.kgm.user.dto.dto.UserContactUpdateDTO;
import cn.kgm.user.dto.entity.UserContact;
import cn.kgm.user.dto.query.UserContactPageQuery;
import cn.kgm.user.dto.vo.UserContactVO;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * # 技术改变自己 #
 * 用户联系方式表
 * @author kappi
 * @date   2024-04-08 15:08:08
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface UserContactMappers {
    UserContactMappers INSTANCE = Mappers.getMapper(UserContactMappers.class);

    /**
     * 将 UserContactSaveDTO 映射成 UserContact 对象
     *
     * @param source 源对象
     * @return UserContact
     */
    UserContact mapToEntity(UserContactSaveDTO source);

    /**
     * 将 UserContactUpdateDTO 映射成 UserContact 对象
     *
     * @param source 源对象
     * @return UserContact
     */
    UserContact mapToEntity(UserContactUpdateDTO source);

    /**
     * UserContactPageQuery 映射成 UserContact 对象
     *
     * @param source 源对象
     * @return UserContact
     */
    UserContact mapToEntity(UserContactPageQuery source);

    /**
     * UserContactPageQuery 映射成 UserContact 对象
     *
     * @param source 源对象
     * @return UserContactVO
     */
    UserContactVO mapToEntity(UserContact source);

}
